package com.ysyc.driver_ee.api;



import com.ysyc.driver_ee.model.AuthSubmit;
import com.ysyc.driver_ee.model.DriverInfo;
import com.ysyc.driver_ee.model.DriverStatistical;
import com.ysyc.driver_ee.model.OrderForm;
import com.ysyc.driver_ee.model.StatisticalVo;
import com.ysyc.driver_ee.model.UserInfo;


import java.util.List;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

/**
 * 数据请求类
 */
public interface HttpServices {
    /**
     * @return 请求接单
     */
    @FormUrlEncoded
    @POST("driver.login")
    Observable<UserInfo> startOrders(@Field("tel") String tel,@Field("code") String code);


    /**
     * @return 验证码
     */
    @FormUrlEncoded
    @POST("get.auth.code")
    Observable<Object> getVerificationCode(@Field("tel") String tel);

    /**
     * @return 获取司机信息
     */
    @POST("driver.getDriverinfo")
    Observable<DriverInfo> obtainDriverInfo();

    /**
     * @return 获取队长信息
     */
    @POST("driver.getPDriverInfo")
    Observable<DriverInfo> obtainCaptainInfo();


    /**
     * @return 获取司机信息
     */
    @FormUrlEncoded
    @POST("transport.get.driverinfo")
    Observable<DriverInfo> getDriverInfo(@Field("driverId") Integer driverId);


    /**
     * @return 获取下级某司机正在进行中的订单,即已接单待到达，送货中
     */
    @FormUrlEncoded
    @POST("get.driver.orderFrom.running")
    Observable<List<OrderForm>> orderFromRunning(@Field("driverId") Integer driverId);


    /**
     * @return 运力系统，获取司机列表信息
     */
    @FormUrlEncoded
    @POST("transport.get.driver.list")
    Observable<List<DriverInfo>> getDriverList(@Field("type") Integer type);

    /**
     * @return 派单
     */
    @FormUrlEncoded
    @POST("driver.deal.orderform")
    Observable<Object> distributeOrder(@Field("orderNumber") String orderNumber,@Field("driverId") Integer driverId);


    /**
     * @return 派单
     */
    @POST("get.drivers.statistacal")
    Observable<List<DriverStatistical>> driverStatisticalVo();


    /**
     * @return 获取个人流水和成单量统计信息
     */
    @POST("week.water.and.num")
    Observable<StatisticalVo> obtainStatisticalVo();

    /**
     * @return 获取统计时间
     */
    @POST("get.account.time.new")
    Observable<Long> accountTimeNew();

    /**
     * @return 提交司机认证
     */
    @FormUrlEncoded
    @POST("driver.auth.submit")
    Observable<Object> authSubmit(@Body AuthSubmit authSubmit);



    /**
     * @return 获取未处理或已接单订单列表
     */
    @FormUrlEncoded
    @POST("get.orderform.list")
    Observable<List<OrderForm>> orderformList(@Field("pageSize") int pageSize,@Field("currentPage") int currentPage,@Field("status") int status);


    /**
     * @return 派单
     */
    @FormUrlEncoded
    @POST("driver.take.orderform")
    Observable<Object> takeOrderform(@Field("orderNumber") String orderNumber);



    /**
     * @return 获取未处理或已接单订单列表
     */
    @FormUrlEncoded
    @POST("get.orderform.list.send")
    Observable<List<OrderForm>> orderformListSend(@Field("pageSize") int pageSize,@Field("currentPage") int currentPage);

    /**
     * @return 获取未处理或已接单订单列表
     */
    @FormUrlEncoded
    @POST("get.orderform.by.ordernumber")
    Observable<OrderForm> orderformDetails(@Field("orderNumber") String orderNumber);

    /**
     * @return 上传司机位置
     */
    @FormUrlEncoded
    @POST("driver.upload.drivermap")
    Observable<Object> uploadDrivermap(@Field("mapName") String mapName,@Field("map") String map);


    /**
     * @return 已到达装货地
     */
    @FormUrlEncoded
    @POST("orderForm.on.arrival")
    Observable<Object> onArrival(@Field("orderNumber") String orderNumber);
    /**
     * @return 确认已装货
     */
    @FormUrlEncoded
    @POST("orderForm.has.loading")
    Observable<Object> hasLading(@Field("hasLoadingUrl") String hasLoadingUrl,@Field("orderNumber") String orderNumber);
    /**
     * @return 接单
     */
    @FormUrlEncoded
    @POST("orderForm.finish")
    Observable<Object> orderFormFinish(@Field("finishUrl") String finishUrl,@Field("orderNumber") String orderNumber);



//
////
//    /**
//     * @return 移动司机位置
//     */
//    @FormUrlEncoded
//    @POST("driver.map.move")
//    Observable<BaseBean> mapMove(@Field("map") String map);
//
//    /**
//     * @return 查询所有可接单的订单列表
//     */
//    @POST("take.orderForm.list")
//    Observable<OrderFormItemList> orderFormList();
//
//    /**
//     * @return 确认接单
//     */
//    @FormUrlEncoded
//    @POST("take.orderForm.take")
//    Observable<BaseBean> orderFormTake(@Field("order_number") String order_number);
//
//    /**
//     * @return 订单列表查询
//     */
//    @FormUrlEncoded
//    @POST("driver.orderForm.queryList")
//    Observable<OrderFormItemDriverList> queryList(@Field("currentPage") int currentPage, @Field("pageMaxNum") int pageMaxNum, @Field("type") int type);
//
//    /**
//     * @return
//     */
//    @FormUrlEncoded
//    @POST("running.water.detail")
//    Observable<MoneyRecord> billingDetail(@Field("currentPage") int currentPage, @Field("pageMaxNum") int pageMaxNum);
//
//    /**
//     * @return 验证码发送接口
//     * 用户注册验证码reg;修改密码验证码changp;信息变更验证码changinfo;登录异常验证码authwraning;登录确认验证码authlogin;身份验证验证码authid
//     */
//    @FormUrlEncoded
//    @POST("userAuth.Login")
//    Observable<TokenBean> login(@Field("tel") String tel, @Field("user_password") String user_password);
//
//    /**
//     * @return 司机信息查询
//     *
//     */
//    @POST("getDriverInfo.ByToken")
//    Observable<DriverInfo> getDriverInfo();
//
//
//    /**
//     * @return 今日流水
//     *
//     */
//    @POST("take.orderForm.todayWater")
//    Observable<TodayWaterInfo> todayWater();
//
//    /**
//     * @return 查询余额
//     *
//     */
//    @POST("query.remaining")
//    Observable<Remaining> remaining();
//
//
//    /**
//     * @return 设置支付密码
//     *
//     */
//    @FormUrlEncoded
//    @POST("auth.set.pay.password")
//    Observable<BaseBean> payPassword(@Field("transaction_p") String transaction_p);
//
//    /**
//     * @return 设置支付密码
//     *
//     */
//    @POST("alipay.get.binding.url")
//    Observable<UserAuthUrl> bindingUrl();
//
//    /**
//     * @return 支付宝绑定
//     *
//     */
//    @FormUrlEncoded
//    @POST("alipay.binding")
//    Observable<BaseBean> alipayBinding(@Field("ali_user_id") String ali_user_id, @Field("transaction_p") String transaction_p);
//
//    /**
//     * @return 提现到支付宝
//     *
//     */
//    @FormUrlEncoded
//    @POST("withdraw.deposit.alipay")
//    Observable<BaseBean> depositAlipay(@Field("price") String price, @Field("transaction_p") String transaction_p);
//
//    /**
//     * @return 根据订单编码查询订单信息
//     *
//     */
//    @FormUrlEncoded
//    @POST("dirver.self.orderForm.queryByNum")
//    Observable<OrderFormDriver> orderDetails(@Field("order_number") String order_number);
//
//    /**
//     * @return 到达乘客起始地
//     *
//     */
//    @FormUrlEncoded
//    @POST("take.orderForm.reachedStartmap")
//    Observable<BaseBean> reachedStartmap(@Field("order_number") String order_number);
//    /**
//     * @return 确认已送达
//     *
//     */
//    @FormUrlEncoded
//    @POST("take.orderForm.arrive")
//    Observable<BaseBean> arrive(@Field("order_number") String order_number);
//    /**
//     * @return 本月流水
//     *
//     */
//    @POST("take.orderForm.tomonthWater")
//    Observable<TomonthWater> tomonthWater();
//
//



//
//    /**
//     * @return 修改密码
//     *
//     */
//    @FormUrlEncoded
//    @POST("user.ChangeP")
//    Observable<SendBean> changePassWord(@Field("user_password") String user_password, @Field("tel") String tel, @Field("authCode") String authCode);
//
//    /**
//     * @return 验证码发送接口
//     * 用户注册验证码reg;修改密码验证码changp;信息变更验证码changinfo;登录异常验证码authwraning;登录确认验证码authlogin;身份验证验证码authid
//     */
//    @FormUrlEncoded
//    @POST("userAuth.Login")
//    Observable<TokenBean> login(@Field("tel") String tel, @Field("user_password") String user_password, @Field("wechat") String wechat);
//
//    /**
//     * @return 车辆列表
//     *
//     */
//    @FormUrlEncoded
//    @POST("zxyc.getCarList")
//    Observable<CarListBean> getCarList(@Field("type_id") String typeId);
//
//    /**
//     * @return 订单列表查询
//     *
//     */
//    @FormUrlEncoded
//    @POST("orderForm.queryList")
//    Observable<OrderFormItemList> getOrderFormItemList(@Field("currentPage") int currentPage, @Field("pageMaxNum") int pageMaxNum, @Field("type") int type);
//
//    /**
//     * @return 订单额外服务字典
//     *
//     */
//    @POST("otherServer.Dir")
//    Observable<OtherServerDirList> otherServerDirList();
//    /**
//     * @return 订单提交
//     *
//     */
//
//    @POST("orderForm.submit")
//    Observable<OrderBean> orderFormSubmit(@Body OrderFormSubmitBean orderFormSubmitBean);
//    /**
//     * @return 实时获取金额
//     *
//     */
//    @FormUrlEncoded
//    @POST("pathPlan.getDisTolls")
//    Observable<GeoTollsLOBean> getDisTolls(@Field("car_id") String car_id, @Field("start_lgt_lat") String start_lgt_lat, @Field("end_lgt_lat") String end_lgt_lat);
//    /**
//     * @return 在线选车第一级页面数据获取
//     *
//     */
//
//    @POST("zxxc.getFirstPage")
//    Observable<ZxxcFirstInfo> getFirstPage();
//    /**
//     * @return 在线选车车型详情
//     *
//     */
//    @FormUrlEncoded
//    @POST("zxxc.getCarInfo")
//    Observable<CarInfoBean> getCarInfo(@Field("car_id") String car_id);
//
//    /**
//     * @return 在线选车车型列表
//     *
//     */
//    @FormUrlEncoded
//    @POST("zxxc.getCarList")
//    Observable<CarList> getZXXCCarList(@Field("type_id") String type_id);
//    /**
//     * @return 根据token返回消费者信息
//     *
//     */
//
//    @POST("userAuth.getCust.omerInfoByToken")
//    Observable<CustomerBean> getCust();
//
//    /**
//     * @return 根据订单编码拿到支付宝支付信息，可直接调用该地址
//     *
//     */
//    @FormUrlEncoded
//    @POST("orderForm.getAlipay")
//    Observable<AlipayBean> getAlipay(@Field("order_number") String order_number, @Field("romdom_number") String romdom_number);
//
//    /**
//     * @return 获取活动信息
//     *
//     */
//    @POST("get.activityinfo.List")
//    Observable<Activityinfo> getActivityInfoList();
//    /**
//     * @return 获取微信的bean
//     *
//     */
//    @FormUrlEncoded
//    @POST("orderForm.getTencentPay")
//    Observable<TencentPayBean> wxPay(@Field("order_number") String order_number);
//    /**
//     * @return 根据订单编码查询订单信息
//     *
//     */
//    @FormUrlEncoded
//    @POST("orderForm.queryByNum")
//    Observable<OrderFormBean> queryByNum(@Field("order_number") String order_number);
//
//    /**
//     * @return 取消订单
//     *
//     */
//    @FormUrlEncoded
//    @POST("orderForm.cancel")
//    Observable<BaseBean> orderFormCancel(@Field("order_number") String order_number);



}
